学修支援チームは、 最近の成績が低下した有効な履修のリストを必要としています。各学生を、同じ科目における本人の以前の成績と比較してください。
ルールの確認
- 2つの期間を使用します:
以前と最近。それぞれに同じ重みの2つの評価があります。 - 平均を比較する前に、 各 期間に少なくとも2つの非NULLスコアが必要です。
- 計算:
decline_points = earlier_avg - recent_avg。 - 15ポイント以上の低下は 要確認を意味します。それ以外の場合、対象となる履修は アラートなし。
- データ不足 は別に扱います。0は有効なスコアであり、NULLや記録の欠落は0ではありません。
データベースの準備
提供された lab8_setup.sql をTAフォルダ DSAI2202/lab8/ からpgAdminで開き、ファイル全体を実行してください。新しい接続を開くたびに、右側の接続設定を再度使用してください。
このセットアップでは performance_comparisonという、ビューと呼ばれる保存済みクエリも提供されます。これは後の演習で役立ちますが、評価結果を保存した追加のテーブルではありません。
✍️ 計算する前に確認を
E01、E07、E08、E09、E24を確認してください。両方の期間で十分なスコアがあるものを判断してください。E24の0がE08のNULL値よりも強い根拠となる理由を説明してください。
SET search_path TO lab8;SET search_path TO lab8;
SELECT 'students' AS table_name, COUNT(*) AS row_count
FROM students
UNION ALL SELECT 'courses', COUNT(*) FROM courses
UNION ALL SELECT 'enrolments', COUNT(*) FROM enrolments
UNION ALL SELECT 'assessment_results', COUNT(*) FROM assessment_results
UNION ALL SELECT 'support_units', COUNT(*) FROM support_units
ORDER BY table_name;SET search_path TO lab8;
SELECT e.enrolment_id, e.student_id, e.course_code,
r.result_id, r.period, r.assessment_no, r.score
FROM enrolments AS e
JOIN assessment_results AS r
ON r.enrolment_id = e.enrolment_id
WHERE e.enrolment_id IN ('E01', 'E07', 'E08', 'E09', 'E24')
ORDER BY e.enrolment_id, r.period, r.assessment_no;セットアップの件数を確認
| テーブル | 行数 | 1行が表すもの |
|---|---|---|
| students | 18 | 学生のプロフィール |
| courses | 4 | 科目 |
| enrolments | 24 | 1人の学生の1科目への履修登録 |
| assessment_results | 92 | ある履修と期間に対する1件の評価結果 |
| support_units | 7 | 任意の階層演習における支援ユニット |
有効な履修が22件、取り消し済みの履修が2件あります。最終的な調査で必要なのは 有効な履修ごとに1行であり、評価ごとに1行でも、全科目を通じた学生ごとに1行でもありません。
追跡する5つのケース
| 履修 | 科目 | 以前のスコア | 最近のスコア | 十分な根拠があるか |
|---|---|---|---|---|
| E01 | SQL101 | 80, 90 | 60, 70 | はい |
| E07 | SQL101 | 80, NULL | 50, 50 | いいえ: 以前のスコアが1件のみ |
| E08 | SQL101 | 80, 80 | NULL, NULL | いいえ: 最近の採点済みスコアがない |
| E09 | SQL101 | 行なし | 60, 60 | いいえ: 以前の期間が欠落 |
| E24 | STAT101 | 0, 0 | 0, 0 | はい |
確認クエリは18件の評価行を返します。E09は2行のみで、以前の評価が存在しません。E08には最近の2行がありますが、どちらにもスコアが記録されていません。
対象となる2つの例を確認
E01: 以前の平均85、最近の平均65、低下20ポイント → 要確認。E24: どちらの平均も0、低下0 → アラートなし。残りの3つの例にはデータ不足のラベルが必要です。